package com.yic.module.device.controller.admin.fault.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;

import com.alibaba.excel.annotation.ExcelProperty;
import com.yic.framework.excel.core.annotations.DictFormat;
import com.yic.framework.excel.core.convert.DictConvert;


/**
 * 设备报修 Excel VO
 *
 * @author 系统管理员
 */
@Data
public class FaultExcelVO {

    @ExcelProperty("主键")
    private Long id;

    @ExcelProperty("报修单号")
    private String code;

    @ExcelProperty(value = "紧急程度", converter = DictConvert.class)
    @DictFormat("device_fault_emergent") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer emergent;

    @ExcelProperty("故障描述")
    private String description;

    @ExcelProperty("报障时间")
    private LocalDateTime faultTime;

    @ExcelProperty("报障图片")
    private String imgUrl;

    @ExcelProperty("报障视频")
    private String videoUrl;

    @ExcelProperty("报障人")
    private Long userId;

    @ExcelProperty("报障部门")
    private Long deptId;

    @ExcelProperty("设备")
    private Long deviceId;

    @ExcelProperty("工厂")
    private Long factoryId;

    @ExcelProperty("工作中心")
    private Long centerId;

    @ExcelProperty("确认时间")
    private LocalDateTime confirmTime;

    @ExcelProperty(value = "工单状态", converter = DictConvert.class)
    @DictFormat("device_fault_status") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer status;

    @ExcelProperty("开始处理时间")
    private LocalDateTime startTime;

    @ExcelProperty("结束处理时间")
    private LocalDateTime endTime;

    @ExcelProperty("处理时长")
    private BigDecimal duration;

    @ExcelProperty("处理人")
    private Long handleUser;

    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}
